package com.example.aggregatedemo.arrary;

import com.example.aggregatedemo.arrary.a04Generics.*;
import org.junit.jupiter.api.Test;

import java.util.ArrayList;

public class GenericTest_1 {
    @Test
    void demoTest_1(){
        //如果不指定类型，都认为是object，坏处，获取数据无法使用他的特有行为。
        //强转容易出现类型转化异常。
        //不限制类型，都是Object
        ArrayList list = new ArrayList();

        //
        list.add("123");
        list.add(123);
    }

    //泛型
    @Test
    void demoTest_2(){
        MyArraryList<String> list=new MyArraryList<>();
        list.add("ccc");
        list.add("ccc");

        list.add("ccc","ccc","ccc","ccc","ccc");
        System.out.println(list);
    }

    //泛型
    @Test
    void demoTest_3(){
        ArrayList<CatPersian> list1=new ArrayList<>();
        ArrayList<CatLiHua> list2=new ArrayList<>();
        ArrayList<DogTaddy> list3=new ArrayList<>();
        ArrayList<DogHusk> list4=new ArrayList<>();

//        keepPet(list1);
//        keepPet(list2);
        keepPet(list3);
        keepPet(list4);
    }

    void keepPet(ArrayList<? extends Dog> list) {
        System.out.println(list);
    }
}
